import type { App } from 'vue';
//  此处只引入基础组件，不包含与布局设置相关的
export function registerCommonComp(app: App) {
    app.component(
		'AppMobCustomDropdownList',
		defineAsyncComponent(() => import('../components/common/custom-dropdown-list/src/custom-dropdown-list.vue'))
	);
    app.component(
		'AppMobTree',
		defineAsyncComponent(() => import('../components/common/tree/src/tree.vue'))
	);
    app.component(
		'AppMobCascader',
		defineAsyncComponent(() => import('../components/common/cascader/src/cascader.vue'))
	);
	app.component(
		'AppCol',
		defineAsyncComponent(() => import('../components/common/col/src/col.vue'))
	);
	app.component(
		'AppRow',
		defineAsyncComponent(() => import('../components/common/row/src/row.vue'))
	);
	app.component(
		'AppCaptionBar',
		defineAsyncComponent(
			() => import('../components/common/caption-bar/src/caption-bar.vue')
		)
	);
	app.component(
		'AppDataInfoBar',
		defineAsyncComponent(
			() => import('../components/common/data-info-bar/src/data-info-bar.vue')
		)
	);
	app.component(
		'AppMobInput',
		defineAsyncComponent(
			() => import('../components/common/input/src/input.vue')
		)
	);
	app.component(
		'AppMobDropdownList',
		defineAsyncComponent(
			() => import('../components/common/dropdown-list/src/dropdown-list.vue')
		)
	);
	app.component(
		'AppSpan',
		defineAsyncComponent(() => import('../components/common/span/src/span.vue'))
	);
	app.component(
		'AppMobStepper',
		defineAsyncComponent(
			() => import('../components/common/stepper/src/stepper.vue')
		)
	);
	app.component(
		'AppMobSlider',
		defineAsyncComponent(
			() => import('../components/common/slider/src/slider.vue')
		)
	);
	app.component(
		'AppMobRating',
		defineAsyncComponent(
			() => import('../components/common/rating/src/rating.vue')
		)
	);
	app.component(
		'AppMobRadioList',
		defineAsyncComponent(
			() => import('../components/common/radio-list/src/radio-list.vue')
		)
	);
	app.component(
		'AppMobDatePicker',
		defineAsyncComponent(
			() => import('../components/common/date-picker/src/date-picker.vue')
		)
	);
	app.component(
		'AppMobFileUpload',
		defineAsyncComponent(
			() => import('../components/common/file-upload/src/file-upload.vue')
		)
	);
	app.component(
		'AppMobQrCode',
		defineAsyncComponent(
			() => import('../components/common/qr-code/src/qr-code.vue')
		)
	);
	app.component(
		'AppRefresher',
		defineAsyncComponent(
			() => import('../components/common/refresher/src/refresher.vue')
		)
	);
	app.component(
		'AppMobSwitch',
		defineAsyncComponent(
			() => import('../components/common/switch/src/switch.vue')
		)
	);
	app.component(
		'AppMobNumberRange',
		defineAsyncComponent(
			() => import('../components/common/number-range/src/number-range.vue')
		)
	);
	app.component(
		'AppMobDateRange',
		defineAsyncComponent(
			() => import('../components/common/date-range/src/date-range.vue')
		)
	);
	app.component(
		'AppIcon',
		defineAsyncComponent(() => import('../components/common/icon/src/icon.vue'))
	);
	app.component(
		'AppQuickGroup',
		defineAsyncComponent(
			() => import('../components/common/quick-group/src/quick-group.vue')
		)
	);
	app.component(
		'AppIconText',
		defineAsyncComponent(
			() => import('../components/common/icon-text/src/icon-text.vue')
		)
	);
	app.component(
		'AppMobToolbar',
		defineAsyncComponent(
			() => import('../components/widgets/toolbar/src/toolbar.vue')
		)
	);
	app.component(
		'AppQuickSearch',
		defineAsyncComponent(
			() => import('../components/common/quick-search/src/quick-search.vue')
		)
	);
	app.component(
		'AppMobLoading',
		defineAsyncComponent(
			() => import('../components/common/loading/src/loading.vue')
		)
	);
	app.component(
		'AppButton',
		defineAsyncComponent(
			() => import('../components/common/button/src/button.vue')
		)
	);
	app.component(
		'AppHtmlContainer',
		defineAsyncComponent(
			() => import('../components/function/html-container/html-container.vue')
		)
	);
	app.component(
		'AppPresetButton',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/interactive/preset-button/src/preset-button.vue'
				)
		)
	);
	app.component(
		'AppPresetQrcode',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/interactive/preset-qrcode/src/preset-qrcode.vue'
				)
		)
	);
	app.component(
		'AppPresetSwitch',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/interactive/preset-switch/src/preset-switch.vue'
				)
		)
	);
	app.component(
		'AppEmptyDataTip',
		defineAsyncComponent(
			() => import('../components/common/empty-data-tip/src/empty-data-tip.vue')
		)
	);
	app.component(
		'AppRaw',
		defineAsyncComponent(() => import('../components/common/raw/src/raw.vue'))
	);
	// login
	app.component(
		'AppLoginCaptcha',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/login/login-captcha/src/login-captcha.vue'
				)
		)
	);
	app.component(
		'AppLoginInput',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/login/login-input/src/login-input.vue'
				)
		)
	);
	app.component(
		'AppLoginMessage',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/login/login-message/src/login-message.vue'
				)
		)
	);
	app.component(
		'AppLoginNoteVerify',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/login/login-note-verify/src/login-note-verify.vue'
				)
		)
	);
	app.component(
		'AppLoginOrg',
		defineAsyncComponent(
			() =>
				import('../components/layout-element/login/login-org/src/login-org.vue')
		)
	);
	app.component(
		'AppThirdLogin',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/login/login-third/src/login-third.vue'
				)
		)
	);
	// media
	app.component(
		'AppFieldImageDynamic',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/media/field-image-dynamic/src/field-image-dynamic.vue'
				)
		)
	);
	app.component(
		'AppRawItemCarousel',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/media/rawitem-carousel/src/rawitem-carousel.vue'
				)
		)
	);
	app.component(
		'AppRawItemImage',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/media/rawitem-image/src/rawitem-image.vue'
				)
		)
	);
	app.component(
		'AppRawItemVideo',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/media/rawitem-video/src/rawitem-video.vue'
				)
		)
	);
	// structure
	app.component(
		'AppNavPos',
		defineAsyncComponent(
			() =>
				import('../components/layout-element/structure/nav-pos/src/nav-pos.vue')
		)
	);
	// text
	app.component(
		'AppPresetCaption',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/text/preset-caption/src/preset-caption.vue'
				)
		)
	);
	app.component(
		'AppPresetText',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/text/preset-text/src/preset-text.vue'
				)
		)
	);
	app.component(
		'AppPresetTitle',
		defineAsyncComponent(
			() =>
				import(
					'../components/layout-element/text/preset-title/src/preset-title.vue'
				)
		)
	);
	//panel-field
	app.component(
		'AppPanelField',
		defineAsyncComponent(
			() => import('../components/common/panel-field/src/panel-field.vue')
		)
	);
	app.component(
		'AppMobDataPicker',
		defineAsyncComponent(
			() => import('../components/common/data-picker/src/data-picker.vue')
		)
	);
	app.component(
		'AppMobDataPickerView',
		defineAsyncComponent(
			() =>
				import('../components/common/data-picker-view/src/data-picker-view.vue')
		)
	);
	app.component(
		'AppMobArrayBox',
		defineAsyncComponent(
			() =>
				import('../components/common/array-box/src/array-box.vue')
		)
	);
	app.component(
		'AppMobColorPicker',
		defineAsyncComponent(
			() =>
				import('../components/common/color-picker/src/color-picker.vue')
		)
	);
}
